unit UsuarioPerfilDM;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, DB, FileUtil, LResources, Forms, Controls, Graphics,
  Dialogs, ZDataset, ZSqlUpdate, MainDM, QueryConditions;

type

  { TUsuarioPerfilData }

  TUsuarioPerfilData = class(TMainDataModule)
    UPerfilAuxZQuerydesc_perfil: TStringField;
    UPerfilAuxZQueryid_perfil: TLargeintField;
    UPerfilAuxZQueryid_usuario: TLargeintField;
    UPerfilAuxZQuerylogin: TStringField;
    UPerfilDatasource: TDatasource;
    UPerfilAuxDatasource: TDatasource;
    UPerfilAuxZQuery: TZQuery;
    UPerfilZQueryativo: TStringField;
    UPerfilZQuerydesc_perfil: TStringField;
    UPerfilZQueryid_perfil: TLargeintField;
    UPerfilZQueryid_usuario: TLargeintField;
    UPerfilZQuerylogin: TStringField;
    UPerfilZQuerynome_pessoa: TStringField;
    UPerfilZQuerysenha: TStringField;
    UPerfilZQuery: TZQuery;
    UPerfilZUpdate: TZUpdateSQL;
    procedure DataModuleCreate(Sender: TObject);
    // procedure LargeintField1SetText(Sender: TField; const aText: string);
    /// Abre o DataSet
    procedure OpenDataSet(); override;
    /// Fecha o DataSet
    procedure CloseDataSet(); override;
    /// Realiza busca
    /// @param(Condicoes são as condições para a busca)
    /// @param(Tabela é a tabela no banco de dados)
    procedure Search(Condicoes: TQueryConditions; Tabela: string); override;
    // procedure InserePerfil(IDUsuario:string;IDPerfil:string);
    procedure RemovePerfil();
    procedure InserePerfil();
    procedure BuscaPerfil(IDUsuario: string);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  UsuarioPerfilData: TUsuarioPerfilData;

implementation

uses ConnectionDM;

{ TUsuarioPerfilData }

procedure TUsuarioPerfilData.DataModuleCreate(Sender: TObject);
begin
  MainDataSet := UPerfilZQuery;
end;

procedure TUsuarioPerfilData.OpenDataSet();
begin
  ConnectionData.EmptyQuery(UPerfilZQuery, 'usuario_perfil');
end;

procedure TUsuarioPerfilData.CloseDataSet();
begin
  UPerfilZQuery.Close();
end;

procedure TUsuarioPerfilData.Search(Condicoes: TQueryConditions; Tabela: string);
begin
  ConnectionData.OpenQueryConditions(UPerfilZQuery, Tabela, Condicoes);
end;

procedure TUsuarioPerfilData.RemovePerfil;
begin
  if not (UPerfilZQuery.BOF) and not (UPerfilZQuery.EOF) then begin
    Edit();
    UPerfilZQuery.Delete();
  end;
end;

procedure TUsuarioPerfilData.InserePerfil();
begin
  UPerfilZQuery.Post();
  UPerfilZQuery.Refresh();
end;

procedure TUsuarioPerfilData.BuscaPerfil(IDUsuario: string);
begin
  with UPerfilAuxZQuery do begin
    Close();
    SQL.Clear();
    SQL.Add('Select u.login,up.* FROM usuario_perfil as up, usuario as u');
    SQL.Add('where up.id_usuario=:id_usuario AND u.id_usuario=up.id_usuario');
    ParamByName('id_usuario').AsString := IDUsuario;
    Open();
  end;
end;

initialization
  {$I usuarioperfildm.lrs}
end.

